﻿using System.ComponentModel;
using System.ComponentModel.DataAnnotations;

namespace Devonline.Core;

/// <summary>
/// 授权类型
/// 在用户, 角色, 组织中的身份类型高于 Authorizer 时, 将不在作为内置角色, 不可编辑
/// </summary>
[Description("授权类型")]
public enum AuthorizeType
{
    /// <summary>
    /// 匿名的
    /// </summary>
    [Display(Name = "匿名")]
    Anonymous,
    /// <summary>
    /// 公众的
    /// </summary>
    [Display(Name = "公众")]
    Public,
    /// <summary>
    /// 第三方的
    /// </summary>
    [Display(Name = "第三方")]
    ThirdParty,
    /// <summary>
    /// 合作方的
    /// </summary>
    [Display(Name = "合作方")]
    Partner,
    /// <summary>
    /// 内部的
    /// </summary>
    [Display(Name = "内部")]
    Internal,
    /// <summary>
    /// 官方的
    /// </summary>
    [Display(Name = "官方")]
    Official,
    /// <summary>
    /// 授权者
    /// </summary>
    [Display(Name = "授权者")]
    Authorizer,
    /// <summary>
    /// 管理员的
    /// </summary>
    [Display(Name = "管理员")]
    Administrator,
    /// <summary>
    /// 开发使用的
    /// </summary>
    [Display(Name = "开发者")]
    Developer,
    /// <summary>
    /// 系统的
    /// </summary>
    [Display(Name = "系统")]
    System
}